From b19cda7c373316186172205921e1e42db70082f2 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 30 Dec 2005 07:16:35 +0000 Subject: [PATCH] Add gdk_cairo_set_source_pixmap. (#318805, Alexander Larsson) 2005-12-30 Matthias Clasen * gdk/gdk.symbols: * gdk/gdkcairo.h: * gdk/gdkcairo.c: Add gdk_cairo_set_source_pixmap. (#318805, Alexander Larsson) --- ChangeLog | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ docs/reference/ChangeLog | 4 ++++ docs/reference/gdk/gdk-sections.txt | 5 +++-- gdk/gdk.symbols | 1 + gdk/gdkcairo.c | 27 +++++++++++++++++++++++++++ gdk/gdkcairo.h | 4 ++++ 7 files changed, 49 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index bdddaa6083..5a7fd7040a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2005-12-30 Matthias Clasen + * gdk/gdk.symbols: + * gdk/gdkcairo.h: + * gdk/gdkcairo.c: Add gdk_cairo_set_source_pixmap. (#318805, + Alexander Larsson) + * gdk/gdkdisplaymanager.c (gdk_display_manager_set_property): Call gdk_display_manager_set_default_display() to change the default display. (#153623, Stefan Kost) diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index bdddaa6083..5a7fd7040a 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,10 @@ 2005-12-30 Matthias Clasen + * gdk/gdk.symbols: + * gdk/gdkcairo.h: + * gdk/gdkcairo.c: Add gdk_cairo_set_source_pixmap. (#318805, + Alexander Larsson) + * gdk/gdkdisplaymanager.c (gdk_display_manager_set_property): Call gdk_display_manager_set_default_display() to change the default display. (#153623, Stefan Kost) diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog index 5003b67a81..3f7a9ceaff 100644 --- a/docs/reference/ChangeLog +++ b/docs/reference/ChangeLog @@ -1,3 +1,7 @@ +2005-12-30 Matthias Clasen + + * gdk/gdk-sections.txt: Add gdk_cairo_set_source_pixmap + 2005-12-29 Matthias Clasen * gtk/tmpl/gtkmain.sgml: Add deprecation note to diff --git a/docs/reference/gdk/gdk-sections.txt b/docs/reference/gdk/gdk-sections.txt index 44023dd608..1a933a29fe 100644 --- a/docs/reference/gdk/gdk-sections.txt +++ b/docs/reference/gdk/gdk-sections.txt @@ -874,9 +874,10 @@ GdkPangoRendererPrivate Cairo Interaction cairo_interaction gdk_cairo_create -gdk_cairo_set_source_color +gdk_cairo_set_source_colorg gdk_cairo_set_source_pixbuf -gdk_cairo_rectangle +gdk_cairo_set_source_pixmap +dk_cairo_rectangle gdk_cairo_region diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols index 068ea03095..1a86c9aa12 100644 --- a/gdk/gdk.symbols +++ b/gdk/gdk.symbols @@ -294,6 +294,7 @@ gdk_fontset_load_for_display gdk_cairo_create gdk_cairo_set_source_color gdk_cairo_set_source_pixbuf +gdk_cairo_set_source_pixmap gdk_cairo_rectangle gdk_cairo_region #endif diff --git a/gdk/gdkcairo.c b/gdk/gdkcairo.c index 5c011c0889..b20381e265 100644 --- a/gdk/gdkcairo.c +++ b/gdk/gdkcairo.c @@ -224,5 +224,32 @@ gdk_cairo_set_source_pixbuf (cairo_t *cr, cairo_surface_destroy (surface); } +/** + * gdk_cairo_set_source_pixmap: + * @cr: a #Cairo context + * @pixmap: a #GdkPixmap + * @pixmap_x: X coordinate of location to place upper left corner of @pixmap + * @pixmap_y: Y coordinate of location to place upper left corner of @pixmap + * + * Sets the given pixmap as the source pattern for the Cairo context. + * The pattern has an extend mode of %CAIRO_EXTEND_NONE and is aligned + * so that the origin of @pixbuf is @pixbuf_x, @pixbuf_y + * + * Since: 2.10 + **/ +void +gdk_cairo_set_source_pixmap (cairo_t *cr, + GdkPixmap *pixmap, + double pixmap_x, + double pixmap_y) +{ + cairo_surface_t *surface; + + surface = _gdk_drawable_ref_cairo_surface (GDK_DRAWABLE (pixmap)); + cairo_set_source_surface (cr, surface, pixmap_x, pixmap_y); + cairo_surface_destroy (surface); +} + + #define __GDK_CAIRO_C__ #include "gdkaliasdef.c" diff --git a/gdk/gdkcairo.h b/gdk/gdkcairo.h index 3918f2381e..8550e6bc58 100644 --- a/gdk/gdkcairo.h +++ b/gdk/gdkcairo.h @@ -34,6 +34,10 @@ void gdk_cairo_set_source_pixbuf (cairo_t *cr, GdkPixbuf *pixbuf, double pixbuf_x, double pixbuf_y); +void gdk_cairo_set_source_pixmap (cairo_t *cr, + GdkPixmap *pixmap, + double pixmap_x, + double pixmap_y); void gdk_cairo_rectangle (cairo_t *cr, GdkRectangle *rectangle); -- 2.30.2